FROM node:18-alpine

# 设置工作目录
WORKDIR /app

# 安装必要的系统依赖
RUN apk add --no-cache openssl python3 make g++ gcc

# 创建必要的目录
RUN mkdir -p /app/logs /app/uploads /app/backups

# 只复制package文件以安装生产依赖
COPY backend/package*.json ./
RUN npm install --only=production

# 复制源代码和Prisma配置到容器
COPY backend/src/ /app/src/
COPY backend/prisma/ /app/prisma/
COPY .env ./

# 生成 Prisma Client
RUN npx prisma generate

# 设置数据卷（只挂载需要持久化的目录）
VOLUME ["/app/logs", "/app/uploads", "/app/backups"]

# 设置默认环境变量
ENV NODE_ENV=production
ENV PORT=3100

# 暴露端口
EXPOSE 3100

# 启动命令
CMD ["node", "src/app.js"] 